#ifndef __SW_3D_MODEL_H__
#define __SW_3D_MODEL_H__

#include "components/3D/sweety_3D_Mesh.h"

namespace SW
{
    class Model
    {
    public:
        Model(GLchar* path);

        void Draw(MainProgramObj* shader);

    private:
        void LoadModel(string path);
       
        void ProcessNode(aiNode* node, const aiScene* scene);

        Mesh ProcessMesh(aiMesh* mesh, const aiScene* scene);
       
        vector<Texture> LoadMaterialTextures(aiMaterial* mat, aiTextureType type, string typeName);

    private:       
        vector<Mesh> meshes;
        string directory;
        vector<Texture> textures_loaded;	// Stores all the textures loaded so far, optimization to make sure textures aren't loaded more than once.        
    };    
}



#endif